syntax on
set nu 
set relativenumber


set noswapfile
" 高亮光标所在行，推荐
set cursorline
" 搜索的时候忽略大小写
set ignorecase
" 如果搜索词中有大字字母，则停止忽略大小写
set smartcase

" 设置在(a,b) 、{a,b} 、<a,b> 这种括号里面 需要安装 argtextobj 插件 
let g:argtextobj_pairs="(:),{:},<:>"
" 高亮时间 需要安装 高亮插件 
let g:highlightedyank_highlight_duration = 200

" 文件树插件配置 
let g:NERDTreeMinimalUI = 1
let g:NERDTreeChDirMode = 2
let g:NERDTreeWinSize = 24

" tab 栏 配置 
let g:airline#extensions#tabline#enabled = 1
" 使用字体
let g:airline_powerline_fonts = 1
let g:airline#extensions#tabline#buffer_idx_mode = 1


" 快捷键配置 
 
" 打开文件树
nnoremap <c-n> :NERDTreeToggle<cr>
" fzf 全局搜索文件 
nnoremap <space> :call fzf#Open()<cr>
nnoremap [ :call fzf#Open()<cr>
 
 
" 窗口循环切换
nnoremap m <C-W>w
" "这个粘贴  不知道咋说 ，就是在块后面 进行 粘贴
nnoremap gp gP
"


"在当前行的下一行粘贴
nnoremap gop :pu<CR>
""在当前行的上一行粘贴
nnoremap gip k:pu<CR>

" 取消高亮
nnoremap sn :noh<CR>
"

" 上一个tab 这个把 宏的按钮 给替换 了，所以下面就把 Q 用来代替宏
nnoremap q :bp<CR>
nnoremap Q q
" " 下一个tab
nnoremap w :bn<CR>


vnoremap <C-C> "+y
vnoremap <C-V> "+P
imap <C-V> <C-R>+

vmap * "ry/<C-R>r<CR>N
vmap # "ry/<C-R>r<CR>n

" 全部选中
map <leader>sa ggVG

nmap s <c-[>
nmap sn :noh<CR>
nmap x :bd<CR>
nmap go <c-[>
nmap gi <c-[>

 
nnoremap <c-s> :w<CR>
nnoremap <leader>rr :source ~/.config/nvim/init.vim<CR>

"内部的iw{{{
nnoremap vn v^
nnoremap vq v$
" vnoremap q g_


onoremap n ^
onoremap q $
"内部
onoremap w iw
onoremap , i(
onoremap ( i(
"onoremap ie i(
onoremap r i[
"onoremap ir i[
onoremap m i{
onoremap . i<
onoremap z i'
onoremap c i"
onoremap u it
"外部
onoremap aw aw
onoremap a, a(
onoremap ae a(
onoremap ar a[
onoremap am a{
onoremap a. a<
onoremap az a'
onoremap ac a"
onoremap <CR> at

"内部
nnoremap vw viw
nnoremap v( vi(
"nnoremap vie vi(
nnoremap vr vi[
nnoremap vm vi{
nnoremap v. vi<
nnoremap v, vi(
nnoremap vz vi'
nnoremap vc vi"
nnoremap vu vit
"外部
nnoremap vaw vaw
nnoremap va, va(
nnoremap vae va(
nnoremap var va[
nnoremap vam va{
nnoremap va. va<
nnoremap va, va(
nnoremap vaz va'
nnoremap vac va"
nnoremap v<CR> vat


"删除 包的括号
"nnoremap dsm ds{
"nnoremap dsc ds"
"nnoremap dsz ds'
"nnoremap dse ds(
"nnoremap ds, ds(
"nnoremap ds. ds<
"nnoremap dsr ds[





